# ----登录函数----
# 编写一个用户登录逻辑，用户名密码提前设置（列表嵌套字典存储），返回用户登录成功或者失败的结果。
# 要求：
# 	封装程函数，登录成功返回1，登录失败返回0；
# user1 = {'id': '1001', 'username': 'zhangsan', 'password': '123'}
# user2 = {'id': '1002', 'username': 'lisi', 'password': '123'}
# user3 = {'id': '1003', 'username': 'wangwu', 'password': '123'}
# user_list = [user1, user2, user3]
#
#
# def assert():
#     """
#     :return: 返回登录状态，1代表登录成功，0代表登录失败
#     """
#     tag = 0
#     name = input('请输入你的用户名：')
#     pwd = input('请输入你的密码：')
#     for user in user_list:
#         if name == user['username'] and pwd == user['password']:
#             tag = 1
#             break
#     if tag == 1:
#         return 1
#     else:
#         return 0
#
#
# # 调用一下：
# print(assert())

# ----商超管理系统（容器版）----
# 项目需求：
# 系统需要用户先登录，再进行操作，其中包含一下功能菜单：
#   a.	使用列表嵌套字典的方式保存用户数据（包含用户名，密码，姓名）；
#   b.	使用列表嵌套字典的方式保存商品数据（包含编号，名称，价格，折扣）；
#   c.	编写用户登录的函数，返回登录结果；
#   d.	循环提示菜单，业务完毕时返回主菜单，退出时回到登陆页面；
#   e.	将功能菜单中的业务功能各自编写到函数中；
#   f.	用户选择不同业务编号时，调用已经写好的各种函数。

user1={"用户名":"zg","密码":"123","姓名":"张工"}
user2={"用户名":"zz","密码":"123","姓名":"赵总"}
user3={"用户名":"yzz","密码":"123","姓名":"圆组长"}
user_List=[user1,user2,user3]
goods1={"编号":"1","名称":"大米","价格":30,"折扣":1}
goods2={"编号":"2","名称":"豆油","价格":60,"折扣":1}
goods3={"编号":"3","名称":"面粉","价格":50,"折扣":1}
goods4={"编号":"4","名称":"香料","价格":11,"折扣":1}
goods5={"编号":"5","名称":"调料","价格":20,"折扣":1}
goods_list=[goods1,goods2,goods3,goods4,goods5]
def login():
    name=input("请输入用户名：")
    pwd=input("请输入密码：")
    tag=0
    for user in user_List:
        if name==user["用户名"] and pwd==user["密码"]:
            tag=1
            break
    if tag==1:
        return 1
    else:
        return 0

# 1.显示商品列表

def show_goods():
    print("="*4+"家家红超市欢迎您"+"="*4)
    print("-编号--名称--价格--折扣-")
    for goods in goods_list:
        print("--"+goods["编号"]+"---"+goods["名称"]+"---"+str(goods["价格"])+"---"+str(goods["折扣"]))
    print("="*21)

# 2.增加商品
def add_goods():
    list=[]
    for goods in goods_list:
        list.append(int(goods["编号"]))
    newnum=str(max(list)+1)
    name= input("请输入增加商品的名称：")
    price=int(input("请输入商品的价格"))
    newgoods={"编号":newnum,"名称":name,"价格":price,"折扣":1}
    goods_list.append(newgoods)
    print(f"商品{name},添加成功")
    show_goods()

# 3.删除商品
def del_goods():
        number=input("请输入删除商品的编号：")
        msg=0
        for goods in goods_list:
            if number== goods["编号"]:
                print(f"正在删除编号为{goods['名称']}的商品!")
                goods_list.remove(goods)

                msg=1
                break
        if msg==1:
            print("删除成功!")
        else:
            print("没有该商品!")
        show_goods()
# 4.设置折扣
def set_goods():
    nunber=input("请输入需要改变折扣的商品编号：")
    msg=0
    for goods in goods_list:
        if nunber==goods["编号"]:
            discount=int(input("请输入新的折扣（1-10）："))
            goods['折扣']=discount
            print(f"商品{goods['名称']}的折扣已改为{int(discount)}折",end="/")
            msg=1
            break
    if msg==1:
        print("修改成功！")
    else:
        print("没有此商品！")
    show_goods()
# 5.修改价格
def mod_goods():
    nunber = input("请输入需要改变价格的商品编号：")
    msg=0
    for goods in goods_list:
        if nunber==goods['编号']:
            price=int(input("请输入新的价格:"))
            goods['价格']=price
            print(f"商品{goods['名称']}的价格已改为{price}")
            msg=1
            break
    if msg==1:
        print("修改成功！")
    else:
        print("没有此商品！")
    show_goods()

# 6.按价格排序（升序、降序
def sort_goods():
    sort=int(input("请输入排序的方式（1:升序 2:降序）："))
    if sort==1:
        goods_list.sort(key=lambda x: x['价格'])
        show_goods()
    elif sort==2:
        goods_list.sort(key=lambda x: x['价格'],reverse=True)
        show_goods()
    else:
        print("请输入正确的排序！")


# 7.退出
def exit_goods():
    print("正在退出!")
#操作
def print_menu():
    print(r'====家家红超市欢迎您====')
    print('1.显示商品列表')
    print('2.增加商品')
    print('3.删除商品')
    print('4.设置折扣')
    print('5.修改价格')
    print('6.按价格排序（升序、降序）')
    print('7.退出')
def main():
    r = login()
    if r == 1:
        while True:
            print_menu()
            choice = int(input('请输入你的选择：'))
            if choice == 1:
                show_goods()
            elif choice == 2:
                add_goods()
            elif choice == 3:
                del_goods()
            elif choice == 4:
                set_goods()
            elif choice == 5:
                mod_goods()
            elif choice == 6:
                sort_goods()
                continue
            elif choice == 7:
                exit_goods()
                break
            else:
                print('输入有误，请重新输入')

    if r==0:
        print("用户名或密码错误！")
if __name__ == '__main__':
    main()
